import libnum
import gmpy2
import uuid
import random

flag = "flag{" + str(uuid.uuid4()) + "}"
print(flag)
m = libnum.s2n(flag)

import libnum
import gmpy2
import uuid
import random

p = libnum.generate_prime(1024)
q = libnum.generate_prime(1024)
flag = "flag{" + str(uuid.uuid4()) + "}"
n = p * q
phi = (p - 1) * (q - 1)
while True:
    e = random.randint(10000, 65537)
    if gmpy2.gcd(e, phi) == 1:
        break
d = libnum.invmod(e, phi)
c = libnum.s2n(flag)
m = pow(c, d, n)
print("p=", p)
print("q=", q)
print("m=", m)
print("d=", d)
print("n=", n)
p= 133018161505349407371526524891712117434621712464398574769591173320162729218549579380252898595190677378891140888323656021835633660180665358875166705497464576206333924213718955028901852865134114820572254305895706093812661751237552343813939403851242095079493266635104687024609782933372689808159785855245046709567
q= 135666466254405529036346535391651810180385942220007917261406898544253020905220068645018966567464835980649311418489093925991927753434029724541016890845505412529041151165052678842145128321388147097810824855019411120198212702814145372504224621631127491265353347163388986698955367564738263415032769238255716418471
m= 15215826974700311320845101980125304444119796668395758679810595267357757294966785600511822572089198985172583868195711840713524809704555963877290249694781394564985255286873255460605906553654118497647615450826134483381766793823466620371270836102965303009703935786255003699840491824745438515183257388844051071410850961895683235757721755271746355026087344411563598653899502674874298677502904566286215396642789054113155935837090875831970774140476670301807765714128894541257378405854128350631558458700930017780693968597762640239288103949214090248785337895216776440247275225586466565940010304753955787765261373060199987430992
d= 3789127121332215734036971102715962454084220270223445592213640860259837157246969972385627869133075756300540532979859255213426383732535835914722706017161589258658477698011434242733556882571165559763879627458155988937107724303671839573091239378893284045683156308244757130790934310518408443627743369053731462507618537764268361236557804778688584209254072728661121087944548542781536969467175649268564398402733524369617677231618445528974017404679341811819632634377161272715229698169907781245818949295119588560082745213445466732928549571501796137858868527976809449760668141815498670327051095354785343888996254822535041492053
n= 18046103919088549942499954284395959427035276043984496310517033599037078353643620799663938826778217875275604829345822293505900451471118830963010026227523131940157799685503596498331248799169675757541314428568824108495066172027010600876553009520032502962514845097989707331175598254909359380555493132693722270201433519554867614209280593464912952199789890404210364562098326530143462255628699011739139465584487965597998804313782759841856095557814210561169299660792121555755372598039167023664935991585871621440044894841672526464090294741990451221058929817417802095565704529776714552007711153533269585445506894579576571212057
